package org.activequant.core.types;

/** 
 * Container for a data quadruple.Holds the following associated variables:
 * <ul>
 * <li>object1(T)</li>
 * <li>object2(U)</li>
 * <li>object3(W)</li>
 * <li>object4(X)</li>
 * </ul>
 * <br/>
 * <br/>
 * <b>History:</b><br/>
 *  - [3.5.2008] Created (Ulrich Staudinger)<br/>
 *
 *  @author Ulrich Staudinger
 */
public class Quadruple<T,U,W,X> {
	/**
	 * private T object1;
	 */
	private T object1; 
	/**
	 * private U object2;
	 */
	private U object2; 
	/**
	 * private W object3;
	 */
	private W object3; 
	/**
	 * private X object4;
	 */
	private X object4; 
	/**
	 * constructs a Quadruple
	 */
	public Quadruple(){
	}
	/**
	 * constructs a Quadruple using the given o1(T), o2(U), o3(W) and o4(X) to set its associated 
	 * object1(T), object2(U), object3(W) and object4(X)
	 * @param o1
	 * @param o2
	 * @param o3
	 * @param o4
	 */
	public Quadruple(T o1, U o2, W o3, X o4){
		this.object1 = o1;
		this.object2 = o2; 
		this.object3 = o3;
		this.object4 = o4; 
	}
	/**
	 * returns the associated object1(T)
	 * @return
	 */
	public T getObject1() {
		return object1;
	}
	/**
	 * sets the associated object1(T) with the given object1(T)
	 * @param object1
	 */
	public void setObject1(T object1) {
		this.object1 = object1;
	}
	/**
	 * returns the associated object2(U)
	 * @return
	 */
	public U getObject2() {
		return object2;
	}
	/**
	 * sets the associated object2(U) with the given object2(U)
	 * @param object2
	 */
	public void setObject2(U object2) {
		this.object2 = object2;
	}
	/**
	 * returns the associated object3(W)
	 * @return
	 */
	public W getObject3() {
		return object3;
	}
	/**
	 * sets the associated object3(W) with the given object3(W)
	 * @param object3
	 */
	public void setObject3(W object3) {
		this.object3 = object3;
	}
	/**
	 * returns the associated object4(X)
	 * @return
	 */
	public X getObject4() {
		return object4;
	}
	/**
	 * sets the associated object4(X) with the given object4(X)
	 * @param object4
	 */
	public void setObject4(X object4) {
		this.object4 = object4;
	}
	
}
